by一起使用 by和group mysql order groupbyorderby的区别 您所在的位置:网站首页 order by两个字段顺序是怎么样的 by一起使用 by和group mysql order groupbyorderby的区别

by一起使用 by和group mysql order groupbyorderby的区别

2023-07-08 05:53| 来源: 网络整理| 查看: 265

order by :

order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。

例如:select * from user order by id desc,name asc,classId desc;//多字段排序

 

group by :

group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志字段。

 

什么是“聚合函数”?    像sum()、count()、avg()等都是“聚合函数”    使用group by 的目的就是要将数据分类汇总。

 

 一般如:           select 单位名称,count(职工id),sum(职工工资) form [某表]           group by 单位名称           这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数和工资总额。

   在sql命令格式使用的先后顺序上,group by 先于 order by。          select 命令的标准格式如下:             SELECT select_list          [ INTO new_table ]          FROM table_source          [ WHERE search_condition ]          [ GROUP BY group_by_expression ]          [ HAVING search_condition ]          [ ORDER BY order_expression [ ASC | DESC ] ]

这两个是很像. order by是按指定的列的升序或降序来给查询结果排序, 它不需要查询结果中出现order by的栏位. 更改Order by里的栏位只会影响查询结果的顺序,而不影响查询出的记录总数,和每条记录的内容.

group by是按指定的列对满足Where条件的所有记录分组,并对组内的一些数值型栏位计算出每组的一个统计指标,如求和、求个数、求平均值、求最大值、求最小值、、、、、、、 它对查询结果有个要求:查询结果中的出现的栏位必须是Group by中栏位的子集。 更改Group by里栏位的顺序不会对查询结果有任何影响; 但是更改Group by的栏位,会对查询得到的记录数量,以及各个汇总函数的结果造成影响。

sql语句Group By用法一则

 

#####总结:当我们选不只一个栏位,且其中至少一个栏位有包含函数的运用时,我们就需要用到 GROUP BY 这个指令。在这个情况下,我们需要确定我们有 GROUP BY 所有其他的栏位。换句话说,除了有包括函数的栏位外,我 们都需要将其放在 GROUP BY 的子句中

-----------------------------------------------------------------------------------------------------------------------------------------------

几种错误的写法:

1.

select count(*),sum(t.money) from t_phone_sale t; select t.bussiness_id, count(*),sum(t.money) from t_phone_sale t;//错误,要查询的列不光只有聚合函数时,必须使用group by

2.

select t.bussiness_id, count(*),sum(t.money) from t_phone_sale t group by t.bussiness_id; select t.bussiness_id, count(*),sum(t.money) from t_phone_sale t group by t.sale_num;//错误,选择列必须出现在group by中 ----------------------------------------------------------------------------------------------------------------------------------------------

如果我们的需求变成是要算出每一间店 (store_name) 的营业额 (sales),那怎么办呢?在这个情况下,我们要做到两件事:第一,我们对于 store_name 及 Sales 这两个栏位都要选出。第二,我们需要确认所有的 sales 都要依照各个 store_name 来分开算。这个语法为:   SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1"   

在我们的示范上,   Store_Information 表格

store_name

Sales

Date

Los Angeles

$1500

Jan-05-1999

San Diego

$250

Jan-07-1999

Los Angeles

$300

Jan-08-1999

Boston

$700

Jan-08-1999

我们就打入, SELECT store_name, SUM(Sales)    FROM Store_Information GROUP BY store_name   

结果:   

store_name

SUM(Sales)

Los Angeles

$1800

San Diego

$250

Boston

$700

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有